<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 准备原始字符串
        var str = 'abcabcfdsafdhjkhdjkfhalk'
        // 最后输出
        // 该字符串中 a 出现 2 次, b 出现 2 次, c 出现 2 次

        /* 
            用什么来记录统计次数
                变量(字符串)
                    "a=1"
                    "a=1,b=1"
                    "a=1,b=1,c=1"
                    "a=2,b=1,c=1"
                    "a=2,b=2,c=1"
                    "a=2,b=2,c=2"       看起来简单,做起来麻烦
                数组
                    ['a',1]
                    ['a',1,'b',1]
                    ['a',1,'b',1,'c',1]
                    ['a',2,'b',1,'c',1]
                    ['a',2,'b',2,'c',1]
                    ['a',2,'b',2,'c',2] 看起来简单,做起来麻烦
                对象
                    {a:1}
                    {a:1,b:1}
                    {a:1,b:1,c:1}
                    {a:2,b:1,c:1}
                    {a:2,b:2,c:1}
                    {a:2,b:2,c:2}
            所以,我们使用对象来实现
                var str = "abcabc"
                1. 创建一个空的对象 
                    var obj = {}
                2. 遍历字符串,目的将字符串里面的字符一个一个的获取到,判断这个字符串在对象的属性(key)当中是否存在
                    如果没有存在,那么将这个字符扔到对象的key(属性)里面去,对应的value(属性值)是1
                    如果已经存在了,那么将字符串对应的value(属性值)++
                    for(var i = 0 ; i < str.length; i ++){
                        //将字符串里面的字符一个一个的获取到
                        var s = str[i]
                        //判断这个字符在对象的key当中是否存在
                        if(obj[s] == undefined){//不存在
                            obj[s] = 1;//如果没有存在,那么将这个字符扔到对象的key(属性)里面去,对应的value(属性值)是1
                        }else{
                            obj[s]++
                        }
                    }
        */
        var obj = {}
        for(var i = 0 ; i < str.length; i ++){
            //将字符串里面的字符一个一个的获取到
            var s = str[i]
            //判断这个字符在对象的key当中是否存在
            if(obj[s] == undefined){//不存在
                obj[s] = 1;//如果没有存在,那么将这个字符扔到对象的key(属性)里面去,对应的value(属性值)是1
            }else{
                obj[s]++
            }
        }
        // console.log(obj);
        //输出
        var ss = "该字符串中"
        for(var key in obj){
            ss += key+"出现"+obj[key]+"次,";
        }
        //找对最后一位的下标
        var index = ss.lastIndexOf(',');
        console.log(ss.substring(0,index));
    </script>
</body>
</html>